package com.cx.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import com.github.pagehelper.PageInterceptor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

import java.util.Properties;

@Slf4j
@Configuration
public class MybatisPlusConfig {
    //    MybatisPlus IPage分页插件配置
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        log.info("MybatisPlusInterceptor init.");
        // 创建一个拦截器对象
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        /*
         * 我们将 new 一个分页插件拦截器 PaginationInnerInterceptor 参数为数据库类型 MySQL,当然也可以写其他数据库类型，根据自己的数据库类型而定
         * 然后将此拦截器add添加到拦截器对象中即可生效
         * (这里演示MyBatis-Plus分页插件拦截器，其实还可以继续添加其他拦截器,我们可以继续 new ，继续add添加到拦截器对象中哦！)
         */
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
        return interceptor;
    }

    @Bean
    public PaginationInnerInterceptor paginationInterceptor() {
        return new PaginationInnerInterceptor();
    }

    @Bean
    PageInterceptor pageInterceptor() {
        PageInterceptor pageInterceptor = new PageInterceptor();
        Properties properties = new Properties();
        properties.setProperty("helperDialect", "mysql");
        pageInterceptor.setProperties(properties);
        return pageInterceptor;
    }
}
